package cn.edu.bzu.ie.sf.mealsmisweb.service.impl;

import cn.edu.bzu.ie.sf.mealsmisweb.entity.Account;
import cn.edu.bzu.ie.sf.mealsmisweb.mapper.AccountMapper;
import cn.edu.bzu.ie.sf.mealsmisweb.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @version v1.0.0
 * @Package : cn.edu.bzu.ie.sf.mealsmisweb.service.impl
 * @Description : 伙食账目公布表业务实现类
 * @Create on : 2021/8/18 17:30
 * @author: Feng Song 宋锋
 **/
@Repository
public class AccountServiceImpl implements AccountService {
    @Autowired
    private AccountMapper accountMapper;    // 数据操作接口实例

    /**
     * 取得某个月份下的，某的你部门的所有的子部门的伙食账目公布表
     * @param pid 父部门
     * @param month 月份
     * @return List<Account> 集合实例
     */
    public List<Account> getAllAccountListByPidAndMonth(int pid, String month){
        return accountMapper.getAllAccountListByPidAndMonth(pid, month);
    }

    /**
     * 某个所有账目公布表的数量
     * @param depid 部门
     * @return long 记录条数
     */
    public long getCountByDepid(int depid){
        return accountMapper.getCountByDepid(depid);
    }

    /**
     * 获取某个部门下的所有账目公布表分页信息
     * @param depid 部门
     * @param firstNum 页面中的第1条记录
     * @param pageSize 每个分页的大小
     * @return List<Accout> 集合实例
     */
    public List<Account> getAccountPageListByDepid(int depid, int firstNum, int pageSize){
        return accountMapper.getAccountPageListByDepid(depid, firstNum, pageSize);
    }

    /**
     * 取得某个部门某个月份的账目公布表信息
     * @param depid 部门
     * @param month 月份
     * @return Account 实例
     */
    public Account getAccoutByDepidAndMonth(int depid, String month){
        return accountMapper.getAccoutByDepidAndMonth(depid, month);
    }

    /**
     * 添加账目信息
     * @param item 要添加的账目，无id
     * @return int 影响的行数，有id
     */
    public int addAccount(Account item){
        return accountMapper.addAccount(item);
    }

    /**
     * 修改账目信息
     * @param item 要修改的账目信息
     * @return int 影响的行数
     */
    public int editAccount(Account item){
        return accountMapper.editAccount(item);
    }

    /**
     * 删除账目信息
     * @param id 要删除账目的id
     * @return int 影响的行数
     */
    public int delAccount(int id){
        return accountMapper.delAccount(id);
    }
}
